package com.speakglobe.accounting.model;

import java.io.Serializable;
import java.util.Set;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.Lob;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;

import com.speakglobe.panelist.model.Panelist;

/**
 * Represent bank details. 
 */
@Entity
@Table(name="bank_details")
public class BankDetails implements Serializable {

	private static final long serialVersionUID = 6554904325012186877L;
	
	@Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private int id;
	
	@Column(name = "account_holder_name")
	private String accountHolderName;
	
	@Column(name = "account_number")
	private String accountNumber;
	
	@Column(name = "swift_code")
	private String swiftCode;
	
	@Column(name = "bank_name")
	private String bankName;
	
	@Lob
	@Column(name = "bank_address")
	private String bankAddress;
	
	@Column(name = "operator_bank_name")
	private String operatorBankName;
	
	@Column(name = "operator_bank_account_number")
	private String operatorBankAccountNumber;
	
	@Column(name = "branch_name")
	private String branchName;
	
	@Column(name = "operator_bank_details")
	private String operatorBankDetails;
	
	@Column(name = "operator_bank_swift_code")
	private String operatorBankSwiftCode;
	
	@Lob
	@Column(name = "operator_bank_address")
	private String operatorBankAddress;
	
	@OneToOne
	@JoinColumn(name = "panelist_id")
	private Panelist panelist;

	public Panelist getPanelist() {
		return panelist;
	}

	public void setPanelist(Panelist panelist) {
		this.panelist = panelist;
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getAccountHolderName() {
		return accountHolderName;
	}

	public void setAccountHolderName(String accountHolderName) {
		this.accountHolderName = accountHolderName;
	}

	public String getAccountNumber() {
		return accountNumber;
	}

	public void setAccountNumber(String accountNumber) {
		this.accountNumber = accountNumber;
	}

	public String getSwiftCode() {
		return swiftCode;
	}

	public void setSwiftCode(String swiftCode) {
		this.swiftCode = swiftCode;
	}

	public String getBankName() {
		return bankName;
	}

	public void setBankName(String bankName) {
		this.bankName = bankName;
	}

	public String getBankAddress() {
		return bankAddress;
	}

	public void setBankAddress(String bankAddress) {
		this.bankAddress = bankAddress;
	}

	public String getOperatorBankName() {
		return operatorBankName;
	}

	public void setOperatorBankName(String operatorBankName) {
		this.operatorBankName = operatorBankName;
	}

	public String getOperatorBankAccountNumber() {
		return operatorBankAccountNumber;
	}

	public void setOperatorBankAccountNumber(String operatorBankAccountNumber) {
		this.operatorBankAccountNumber = operatorBankAccountNumber;
	}

	public String getBranchName() {
		return branchName;
	}

	public void setBranchName(String branchName) {
		this.branchName = branchName;
	}

	public String getOperatorBankDetails() {
		return operatorBankDetails;
	}

	public void setOperatorBankDetails(String operatorBankDetails) {
		this.operatorBankDetails = operatorBankDetails;
	}

	public String getOperatorBankSwiftCode() {
		return operatorBankSwiftCode;
	}

	public void setOperatorBankSwiftCode(String operatorBankSwiftCode) {
		this.operatorBankSwiftCode = operatorBankSwiftCode;
	}

	public String getOperatorBankAddress() {
		return operatorBankAddress;
	}

	public void setOperatorBankAddress(String operatorBankAddress) {
		this.operatorBankAddress = operatorBankAddress;
	}
	
}
